import {
  PartialType,
  PickType,
  OmitType,
  IntersectionType,
} from '@nestjs/mapped-types';
import { CreateFlexibleDtoDto } from './create-flexible-dto.dto';

// 继承 create 数据并全部设置为可选
// export class UpdateFlexibleDtoDto extends PartialType(CreateFlexibleDtoDto) {}

// 继承 create 数据并设置可选数据
// export class UpdateFlexibleDtoDto extends PickType(CreateFlexibleDtoDto, ['age', 'email']) {}

// 继承 create 数据并删除几个数据
// export class UpdateFlexibleDtoDto extends OmitType(CreateFlexibleDtoDto, ['name', 'hoobies', 'sex']) {}

// 继承多个 dto 数据
// export class UpdateFlexibleDtoDto extends IntersectionType(CreateFlexibleDtoDto, CreateFlexibleDtoDto) {}

// 继承多个特殊属性 dto 数据
export class UpdateFlexibleDtoDto extends IntersectionType(
  PartialType(CreateFlexibleDtoDto),
  PickType(CreateFlexibleDtoDto, ['age', 'email']),
  OmitType(CreateFlexibleDtoDto, ['name', 'hoobies', 'sex']),
) {}
